package org.zjx.repository;


import org.zjx.enums.prop.ItemType;
import org.zjx.model.prop.ItemTemplate;

import java.util.List;
import java.util.Optional;

/**
 * 道具模板仓库接口
 * 提供对道具模板数据的访问操作
 */
public interface ItemTemplateRepository {
    /**
     * 获取所有道具模板
     * @return 模板列表
     */
    List<ItemTemplate> findAllTemplates();

    /**
     * 根据ID查找模板
     * @param templateId 模板ID
     * @return 可能存在的模板
     */
    Optional<ItemTemplate> findTemplateById(int templateId);

    /**
     * 根据名称查找模板
     * @param templateName 模板名称
     * @return 可能存在的模板
     */
    Optional<ItemTemplate> findTemplateByName(String templateName);


    List<ItemTemplate> findTemplatesByType(ItemType type);

    /**
     * 保存模板 (管理员用)
     * @param template 要保存的模板
     */
    void saveTemplate(ItemTemplate template);
}